home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / pcboard / pie_orvw.zip / PIE-WRIT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-04-22  |  11KB  |  752 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN005
  20.     Boolean  BOOLEAN006
  21.     Boolean  BOOLEAN007
  22.     Boolean  BOOLEAN008
  23.     Boolean  BOOLEAN009
  24.     Boolean  BOOLEAN010
  25.     Boolean  BOOLEAN011
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  TINTEGER006(4)
  31.     Integer  TINTEGER011(2)
  32.     Integer  INTEGER012
  33.     Integer  INTEGER013
  34.     Integer  INTEGER014
  35.     Integer  INTEGER015
  36.     Integer  INTEGER019
  37.     String   STRING006
  38.     String   STRING007
  39.     String   STRING008
  40.     String   STRING009
  41.     String   STRING010
  42.     String   STRING011
  43.     String   TSTRING012(4)
  44.     String   STRING013
  45.     String   STRING014
  46.     String   TSTRING015(5)
  47.     String   STRING016
  48.     String   STRING017
  49.     String   STRING018
  50.     String   STRING026
  51.     String   STRING027
  52.     String   TSTRING028(2)
  53.     String   STRING029
  54.     String   STRING030
  55.     String   STRING036
  56.     String   STRING039
  57.     String   STRING045
  58.     String   STRING046
  59.     String   STRING047
  60.     String   STRING048
  61.     String   STRING049
  62.     String   STRING050
  63.     String   STRING051
  64.     String   STRING052
  65.     Declare  Function FUNCTION001(String STRING019, String STRING020, String STRING021, Integer INTEGER007, Integer INTEGER008, Integer INTEGER009, String STRING022, String STRING023, String STRING024, String STRING025, Integer INTEGER010) String
  66.     Declare  Procedure PROC001(Integer INTEGER016, Integer INTEGER017, String STRING031, Integer INTEGER018, String STRING032, String STRING033, String STRING034, String STRING035)
  67.     Declare  Procedure PROC002(Integer INTEGER020, String STRING037, Integer INTEGER021, Integer INTEGER022, String STRING038)
  68.     Declare  Procedure PROC003(String STRING040, Integer INTEGER023, Integer INTEGER024, String STRING041, String STRING042, String STRING043, String STRING044, Integer INTEGER025)
  69.  
  70. ;------------------------------------------------------------------------------
  71.  
  72.     Print "@POFF@"
  73.     GetUser
  74.     BOOLEAN008 = U_Scroll
  75.     BOOLEAN011 = 0
  76.     BOOLEAN010 = 1
  77.     INTEGER005 = 5
  78.     INTEGER004 = 14
  79.     TSTRING012(1) = "Zmodem"
  80.     TSTRING012(2) = "Ymodem"
  81.     TSTRING012(3) = "Hs/link"
  82.     TSTRING012(4) = "None"
  83.     Gosub LABEL008
  84.     STRING013 = ""
  85.     DispFile PPEPath() + "PIEWRIT.PCB", 1
  86.     Gosub LABEL007
  87.     Gosub LABEL002
  88.     STRING014 = "CODED BY ORSON & VINCENT VEGA. ANSI BY RENEGADE, FOR PROViDENCE 1996    "
  89.     STRING014 = Replace(STRING014, " ", "·")
  90.     TINTEGER006(2) = Len(STRING014)
  91.     AnsiPos INTEGER004, INTEGER005
  92.     Color 15
  93.     Print "■"
  94.     :LABEL001
  95.     STRING018 = Inkey()
  96.     If (STRING018 == Chr(27)) Goto LABEL012
  97.     If (STRING018 == Chr(13)) Goto LABEL003
  98.     If (STRING018 == "DOWN") Then
  99.         If (INTEGER005 > 14) Goto LABEL009
  100.         If (INTEGER005 == 10) Then
  101.             AnsiPos 14, 10
  102.             Print " "
  103.             INTEGER004 = 4
  104.             Inc INTEGER005
  105.         Endif
  106.         AnsiPos INTEGER004, INTEGER005
  107.         Print " "
  108.         Inc INTEGER005
  109.         AnsiPos INTEGER004, INTEGER005
  110.         Color 15
  111.         Print "■"
  112.     Endif
  113.     If (STRING018 == "UP") Then
  114.         If (INTEGER005 == 5) Goto LABEL001
  115.         If (INTEGER005 == 12) Then
  116.             AnsiPos 4, 12
  117.             Print " "
  118.             INTEGER004 = 14
  119.             Dec INTEGER005
  120.         Endif
  121.         AnsiPos INTEGER004, INTEGER005
  122.         Print " "
  123.         Dec INTEGER005
  124.         AnsiPos INTEGER004, INTEGER005
  125.         Color 15
  126.         Print "■"
  127.     Endif
  128.     STRING017 = STRING014
  129.     STRING017 = Right(STRING017, Len(STRING017) - TINTEGER006(1))
  130.     STRING017 = Left(STRING017, Len(STRING017) - TINTEGER006(2) + 28)
  131.     STRING016 = Left(STRING014, 1)
  132.     STRING014 = Right(STRING014, Len(STRING014) - 1)
  133.     STRING014 = STRING014 + STRING016
  134.     TSTRING015(1) = Left(STRING017, 1)
  135.     STRING017 = Right(STRING017, Len(STRING017) - 1)
  136.     TSTRING015(2) = Left(STRING017, 1)
  137.     STRING017 = Right(STRING017, Len(STRING017) - 1)
  138.     TSTRING015(3) = Left(STRING017, Len(STRING017) - 2)
  139.     STRING017 = Right(STRING017, Len(STRING017) - Len(TSTRING015(3)))
  140.     TSTRING015(4) = Left(STRING017, 1)
  141.     STRING017 = Right(STRING017, Len(STRING017) - 1)
  142.     TSTRING015(5) = Left(STRING017, 1)
  143.     STRING017 = Right(STRING017, Len(STRING017) - 1)
  144.     AnsiPos 5, 20
  145.     Color 8
  146.     Print TSTRING015(1)
  147.     Color 7
  148.     Print TSTRING015(2)
  149.     Color 15
  150.     Print TSTRING015(3)
  151.     Color 7
  152.     Print TSTRING015(4)
  153.     Color 8
  154.     Print TSTRING015(5)
  155.     Delay 2
  156.     Goto LABEL001
  157.     :LABEL002
  158.     STRING008 = U_Pwd
  159.     If (Len(STRING008) > 17) STRING008 = Left(STRING008, 17)
  160.     STRING009 = U_City
  161.     If (Len(STRING009) > 17) STRING009 = Left(STRING009, 17)
  162.     STRING010 = U_HVPhone
  163.     If (Len(STRING010) > 17) STRING010 = Left(STRING010, 17)
  164.     STRING011 = U_BDPhone
  165.     If (Len(STRING011) > 17) STRING011 = Left(STRING011, 17)
  166.     INTEGER003 = U_PageLen
  167.     If (INTEGER003 > 100) INTEGER003 = 99
  168.     Return
  169.     :LABEL003
  170.     AnsiPos INTEGER004, INTEGER005
  171.     Color 8
  172.     Print "■"
  173.     BOOLEAN005 = 1
  174.     Select Case (INTEGER005)
  175.         Case 5
  176.             PROC002(28, "ENTER NEW PASSWORD", 5, 20, 15)
  177.             STRING008 = FUNCTION001("[", "]", " ", 17, 5, 17, 15, 8, Mask_Pwd(), STRING008, 4)
  178.             AnsiPos 17, 5
  179.             Color 7
  180.             STRING008 = Upper(STRING008)
  181.             Print Left(STRING008, 17)
  182.             U_Pwd = STRING008
  183.         Case 6
  184.             PROC002(28, "ENTER NEW LOCATION", 5, 20, 15)
  185.             STRING009 = FUNCTION001("[", "]", " ", 17, 6, 17, 15, 8, STRING013, STRING009, 3)
  186.             AnsiPos 17, 6
  187.             Color 7
  188.             Print Left(STRING009, 17)
  189.             U_City = STRING009
  190.         Case 7
  191.             PROC002(28, "ENTER NEW VOICE #", 5, 20, 15)
  192.             STRING010 = FUNCTION001("[", "]", " ", 17, 7, 17, 15, 8, "0987654321/-+\()[]{}*eliteuELITEUNA_ ", STRING010, 3)
  193.             AnsiPos 17, 7
  194.             Color 7
  195.             Print Left(STRING010, 17)
  196.             U_HVPhone = STRING010
  197.         Case 8
  198.             PROC002(28, "ENTER NEW MODEM #", 5, 20, 15)
  199.             STRING011 = FUNCTION001("[", "]", " ", 17, 8, 17, 15, 8, "0987654321/-+\()[]{}*eliteuELITEUNA_ ", STRING011, 3)
  200.             AnsiPos 17, 8
  201.             Color 7
  202.             Print Left(STRING011, 17)
  203.             U_BDPhone = STRING011
  204.         Case 9
  205.             If (U_Expert == 1) Then
  206.                 AnsiPos 17, 9
  207.                 Color 7
  208.                 Print "NOPE"
  209.                 U_Expert = 0
  210.             Else
  211.                 Color 7
  212.                 AnsiPos 17, 9
  213.                 Print "YES "
  214.                 U_Expert = 1
  215.             Endif
  216.         Case 10
  217.             STRING006 = U_Trans
  218.             Select Case (STRING006)
  219.                 Case "Z"
  220.                     U_Trans = "G"
  221.                     STRING007 = "Ymodem "
  222.                 Case "G"
  223.                     U_Trans = "H"
  224.                     STRING007 = "Hs/Link"
  225.                 Case "H"
  226.                     U_Trans = "N"
  227.                     STRING007 = "None   "
  228.                 Case "N"
  229.                     U_Trans = "Z"
  230.                     STRING007 = "Zmodem "
  231.                 Case Else
  232.                     U_Trans = "Z"
  233.                     STRING007 = "Zmodem"
  234.             End Select
  235.             AnsiPos 17, 10
  236.             Color 7
  237.             Print STRING007
  238.         Case 12
  239.             PROC002(28, "PAGELENGTH SETTING", 5, 20, 15)
  240.             INTEGER003 = FUNCTION001("[", "]", " ", 28, 12, 2, 15, 8, "0987654321", INTEGER003, 1)
  241.             AnsiPos 28, 12
  242.             Color 7
  243.             Print INTEGER003
  244.             U_PageLen = INTEGER003
  245.         Case 13
  246.             BOOLEAN007 = U_FSE
  247.             Select Case (BOOLEAN007)
  248.                 Case 1
  249.                     U_FSE = 0
  250.                     AnsiPos 28, 13
  251.                     Color 7
  252.                     Print "N"
  253.                 Case 0
  254.                     U_FSE = 1
  255.                     AnsiPos 28, 13
  256.                     Color 7
  257.                     Print "Y"
  258.             End Select
  259.             :LABEL004
  260.         Case 14
  261.             Select Case (BOOLEAN008)
  262.                 Case 1
  263.                     BOOLEAN008 = 0
  264.                     AnsiPos 28, 14
  265.                     Color 7
  266.                     Print "N"
  267.                 Case 0
  268.                     BOOLEAN008 = 1
  269.                     AnsiPos 28, 14
  270.                     Color 7
  271.                     Print "Y"
  272.             End Select
  273.             :LABEL005
  274.             U_Scroll = BOOLEAN008
  275.         Case 15
  276.             BOOLEAN006 = U_Cls
  277.             If (BOOLEAN006 == 1) Then
  278.                 U_Cls = 0
  279.                 AnsiPos 28, 15
  280.                 Color 7
  281.                 Print "N"
  282.                 Goto LABEL006
  283.             Endif
  284.         Case 0
  285.             U_Cls = 1
  286.             AnsiPos 28, 15
  287.             Color 7
  288.             Print "Y"
  289.     End Select
  290.     :LABEL006
  291.     AnsiPos INTEGER004, INTEGER005
  292.     Color 15
  293.     Print "■"
  294.     Goto LABEL001
  295.     :LABEL007
  296.     Color 7
  297.     AnsiPos 17, 5
  298.     Print Left(U_Pwd, 17)
  299.     AnsiPos 17, 6
  300.     Print Left(U_City, 17)
  301.     AnsiPos 17, 7
  302.     Print Left(U_HVPhone, 17)
  303.     AnsiPos 17, 8
  304.     Print Left(U_BDPhone, 17)
  305.     AnsiPos 17, 9
  306.     If (U_Expert == 0) Then
  307.         Print "NOPE"
  308.     Else
  309.         Print "YES"
  310.     Endif
  311.     AnsiPos 17, 10
  312.     Print STRING007
  313.     AnsiPos 28, 12
  314.     Print U_PageLen
  315.     AnsiPos 28, 13
  316.     If (U_FSE == 1) Print "Y"
  317.     If (U_FSE == 0) Print "N"
  318.     AnsiPos 28, 14
  319.     If (BOOLEAN008 == 1) Print "Y"
  320.     If (BOOLEAN008 == 0) Print "N"
  321.     AnsiPos 28, 15
  322.     If (U_Cls == 1) Print "Y"
  323.     If (U_Cls == 0) Print "N"
  324.     Return
  325.     :LABEL008
  326.     Select Case (U_Trans)
  327.         Case "G"
  328.             STRING007 = TSTRING012(2)
  329.             Return
  330.         Case "Z"
  331.             STRING007 = TSTRING012(1)
  332.             Return
  333.         Case "H"
  334.             STRING007 = TSTRING012(3)
  335.             Return
  336.         Case Else
  337.             STRING007 = TSTRING012(4)
  338.             Return
  339.     End Select
  340.     :LABEL009
  341.     PROC002(28, "PRESS ENTER TO EXIT", 5, 20, 15)
  342.     If (BOOLEAN010 == 0) Goto LABEL011
  343.     :LABEL010
  344.     BOOLEAN010 = 1
  345.     STRING018 = Inkey()
  346.     Inc INTEGER002
  347.     Delay 1
  348.     If (STRING018 == Chr(27)) Goto LABEL012
  349.     If (STRING018 == Chr(13)) Goto LABEL012
  350.     If (STRING018 == "UP") Then
  351.         INTEGER005 = 15
  352.         AnsiPos 11, 17
  353.         Color 7
  354.         Print "EXIT BACK TO MAIN"
  355.         Goto LABEL001
  356.     Endif
  357.     PROC003("EXIT BACK TO MAIN", 11, 17, "@X08", "@X05", "@X0D", "@X0F", INTEGER002)
  358.     If (INTEGER002 > 23) Goto LABEL011
  359.     Goto LABEL010
  360.     :LABEL011
  361.     BOOLEAN010 = 0
  362.     STRING018 = Inkey()
  363.     Dec INTEGER002
  364.     Delay 1
  365.     If (STRING018 == Chr(27)) Goto LABEL012
  366.     If (STRING018 == Chr(13)) Goto LABEL012
  367.     If (STRING018 == "UP") Then
  368.         INTEGER005 = 15
  369.         AnsiPos 11, 17
  370.         Color 7
  371.         Print "EXIT BACK TO MAIN"
  372.         Goto LABEL001
  373.     Endif
  374.     PROC003("EXIT BACK TO MAIN", 11, 17, "@X08", "@X05", "@X0D", "@X0F", INTEGER002)
  375.     If (INTEGER002 < 1) Goto LABEL010
  376.     Goto LABEL011
  377.     :LABEL012
  378.     If (BOOLEAN005 == 0) Goto LABEL014
  379.     PROC002(28, "WANNA SAVE?", 5, 20, 15)
  380.     AnsiPos 5, 17
  381.     Print "                         "
  382.     AnsiPos 15, 17
  383.     Print "@X08[@X0FYES@X08][@X0FN@X07o@X08]"
  384.     STRING018 = Inkey()
  385.     BOOLEAN009 = 1
  386.     While (BOOLEAN011 == 0) Do
  387.         :LABEL013
  388.         STRING018 = Inkey()
  389.         If (STRING018 == Chr(13)) BOOLEAN011 = 1
  390.         If (Upper(STRING018) == "Y") Goto LABEL015
  391.         If (Upper(STRING018) == "N") Goto LABEL014
  392.         If (STRING018 == "RIGHT") Then
  393.             If (BOOLEAN009 == 0) Goto LABEL013
  394.             AnsiPos 15, 17
  395.             Print "@X08[@X0FY@X07es@X08][@X0FNO@X08]"
  396.             BOOLEAN009 = 0
  397.         Endif
  398.         If (STRING018 == "LEFT") Then
  399.             If (BOOLEAN009 == 1) Goto LABEL013
  400.             AnsiPos 15, 17
  401.             Print "@X08[@X0FYES@X08][@X0FN@X07o@X08]"
  402.             BOOLEAN009 = 1
  403.         Endif
  404.     EndWhile
  405.     If (BOOLEAN009 == 0) Goto LABEL014
  406.     Gosub LABEL015
  407.     :LABEL014
  408.     AnsiPos 48, 15
  409.     Print "@X07▄"
  410.     AnsiPos 69, 15
  411.     Print "@X07▄"
  412.     Delay 2
  413.     AnsiPos 48, 15
  414.     Print "@X0F▄"
  415.     AnsiPos 69, 15
  416.     Print "@X0F▄"
  417.     Delay 2
  418.     AnsiPos 48, 15
  419.     Print "@X07▄"
  420.     AnsiPos 69, 15
  421.     Print "@X07▄"
  422.     Delay 2
  423.     AnsiPos 48, 15
  424.     Print "@X0C▄"
  425.     AnsiPos 69, 15
  426.     Print "@X0C▄"
  427.     Cls
  428.     End
  429.     :LABEL015
  430.     PROC002(28, "SAVING!", 5, 20, 15)
  431.     PutUser
  432.     Return
  433.     End
  434.  
  435. ;------------------------------------------------------------------------------
  436.  
  437.     Function FUNCTION001(String STRING019, String STRING020, String STRING021, Integer INTEGER007, Integer INTEGER008, Integer INTEGER009, String STRING022, String STRING023, String STRING024, String STRING025, Integer INTEGER010) String
  438.  
  439.     String   STRING027
  440.     String   TSTRING028(2)
  441.     String   STRING029
  442.     String   STRING030
  443.     Integer  TINTEGER011(2)
  444.     Integer  INTEGER012
  445.     Integer  INTEGER013
  446.     Integer  INTEGER014
  447.     Integer  INTEGER015
  448.     Integer  INTEGER016
  449.  
  450.     INTEGER013 = INTEGER008
  451.     INTEGER012 = INTEGER007
  452.     STRING027 = TSTRING028(1) + TSTRING028(2)
  453.     STRING029 = STRING025
  454.     PROC001(INTEGER007, INTEGER008, STRING021, INTEGER009, STRING022, STRING023, STRING019, STRING020)
  455.     Color STRING023
  456.     AnsiPos INTEGER007, INTEGER008
  457.     TSTRING028(2) = STRING025
  458.     INTEGER012 = INTEGER007 + Len(TSTRING028(2))
  459.     AnsiPos INTEGER007, INTEGER008
  460.     Print STRING025
  461.     STRING027 = TSTRING028(1) + TSTRING028(2)
  462.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  463.     :LABEL016
  464.     STRING030 = Inkey()
  465.     If (STRING030 == "") Goto LABEL016
  466.     If (STRING030 == Chr(13)) Goto LABEL034
  467.     If (STRING030 == Chr(27)) Goto LABEL033
  468.     If (STRING030 == Chr(8)) Goto LABEL021
  469.     If (STRING030 == "LEFT") Goto LABEL024
  470.     If (STRING030 == "DOWN") Goto LABEL024
  471.     If (STRING030 == "RIGHT") Goto LABEL026
  472.     If (STRING030 == "UP") Goto LABEL026
  473.     If (STRING030 == "HOME") Goto LABEL028
  474.     If (STRING030 == "END") Goto LABEL029
  475.     If (STRING030 == "@") Goto LABEL016
  476.     If (STRING030 == "") Goto LABEL030
  477.     If (STRING030 == "DEL") Goto LABEL030
  478.     If (STRING030 == Chr(9)) Goto LABEL016
  479.     STRING030 = Left(STRING030, 1)
  480.     If (INTEGER012 > INTEGER007 + INTEGER009 - 1) Goto LABEL016
  481.     If (INTEGER014 > INTEGER009) Goto LABEL016
  482.     If (STRING030 == " ") Goto LABEL017
  483.     If (STRING024 == "") Goto LABEL017
  484.     INTEGER015 = InStr(STRING024, STRING030)
  485.     If (INTEGER015 == 0) Goto LABEL020
  486.     :LABEL017
  487.     If (TINTEGER011(1) == 1) Goto LABEL018
  488.     TSTRING028(2) = TSTRING028(2) + STRING030
  489.     AnsiPos INTEGER012, INTEGER013
  490.     Print STRING030
  491.     Goto LABEL019
  492.     :LABEL018
  493.     TSTRING028(1) = TSTRING028(1) + STRING030
  494.     AnsiPos INTEGER007, INTEGER013
  495.     Print TSTRING028(1) + TSTRING028(2)
  496.     AnsiPos INTEGER012 + 1, INTEGER013
  497.     :LABEL019
  498.     Inc INTEGER012
  499.     STRING027 = TSTRING028(1) + TSTRING028(2)
  500.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  501.     Goto LABEL016
  502.     :LABEL020
  503.     STRING030 = ""
  504.     INTEGER015 = 0
  505.     Goto LABEL016
  506.     :LABEL021
  507.     If (TINTEGER011(1) == 1) Goto LABEL022
  508.     If (INTEGER012 < INTEGER007 + 1) Goto LABEL016
  509.     TSTRING028(2) = Left(TSTRING028(2), Len(TSTRING028(2)) - 1)
  510.     Dec INTEGER012
  511.     AnsiPos INTEGER012, INTEGER013
  512.     Print STRING021
  513.     AnsiPos INTEGER012, INTEGER013
  514.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  515.     Goto LABEL023
  516.     :LABEL022
  517.     If (INTEGER012 < INTEGER007 + 1) Goto LABEL016
  518.     TSTRING028(1) = Left(TSTRING028(1), Len(TSTRING028(1)) - 1)
  519.     Dec INTEGER012
  520.     AnsiPos INTEGER007, INTEGER013
  521.     Print TSTRING028(1) + TSTRING028(2) + STRING021
  522.     AnsiPos INTEGER012, INTEGER013
  523.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  524.     :LABEL023
  525.     STRING027 = TSTRING028(1) + TSTRING028(2)
  526.     Goto LABEL016
  527.     :LABEL024
  528.     TINTEGER011(1) = 1
  529.     If (INTEGER012 < INTEGER007 + 1) Goto LABEL016
  530.     If (TINTEGER011(2) == 0) TSTRING028(1) = Left(TSTRING028(2), Len(TSTRING028(2)) - 1)
  531.     If (TINTEGER011(2) == 0) TSTRING028(2) = Right(TSTRING028(2), 1)
  532.     If (TINTEGER011(2) == 0) Goto LABEL025
  533.     TSTRING028(2) = Right(TSTRING028(1), 1) + TSTRING028(2)
  534.     TSTRING028(1) = Left(TSTRING028(1), Len(TSTRING028(1)) - 1)
  535.     :LABEL025
  536.     Dec INTEGER012
  537.     AnsiPos INTEGER012, INTEGER008
  538.     If (TINTEGER011(2) == 0) TINTEGER011(2) = 1
  539.     Goto LABEL016
  540.     :LABEL026
  541.     If (INTEGER012 > INTEGER007 + INTEGER009 - 1) Goto LABEL016
  542.     If (TINTEGER011(2) == 0) Goto LABEL027
  543.     TSTRING028(1) = TSTRING028(1) + Left(TSTRING028(2), 1)
  544.     TSTRING028(2) = Right(TSTRING028(2), Len(TSTRING028(2)) - 1)
  545.     If (TSTRING028(2) == "") TINTEGER011(2) = 0
  546.     If (TSTRING028(2) == "") TINTEGER011(1) = 0
  547.     If (TSTRING028(2) == "") TSTRING028(2) = TSTRING028(1)
  548.     If (TSTRING028(2) == TSTRING028(1)) TSTRING028(1) = ""
  549.     Inc INTEGER012
  550.     :LABEL027
  551.     AnsiPos INTEGER012, INTEGER008
  552.     Goto LABEL016
  553.     :LABEL028
  554.     TINTEGER011(1) = 1
  555.     TINTEGER011(2) = 1
  556.     INTEGER012 = INTEGER007
  557.     TSTRING028(2) = TSTRING028(1) + TSTRING028(2)
  558.     TSTRING028(1) = ""
  559.     AnsiPos INTEGER007, INTEGER013
  560.     Goto LABEL016
  561.     :LABEL029
  562.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  563.     INTEGER012 = INTEGER007 + INTEGER014 - 1
  564.     TSTRING028(2) = TSTRING028(1) + TSTRING028(2)
  565.     TSTRING028(1) = ""
  566.     TINTEGER011(2) = 0
  567.     TINTEGER011(1) = 0
  568.     AnsiPos INTEGER012, INTEGER013
  569.     Goto LABEL016
  570.     :LABEL030
  571.     If (TINTEGER011(1) == 1) Goto LABEL031
  572.     If (INTEGER012 < INTEGER007 + 1) Goto LABEL016
  573.     TSTRING028(1) = Right(TSTRING028(1), Len(TSTRING028(1)) - 1)
  574.     AnsiPos INTEGER012, INTEGER013
  575.     Print STRING021
  576.     AnsiPos INTEGER012, INTEGER013
  577.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  578.     Goto LABEL032
  579.     :LABEL031
  580.     If (INTEGER012 < INTEGER007) Goto LABEL016
  581.     TSTRING028(2) = Right(TSTRING028(2), Len(TSTRING028(2)) - 1)
  582.     AnsiPos INTEGER007, INTEGER013
  583.     Print TSTRING028(1) + TSTRING028(2) + STRING021
  584.     AnsiPos INTEGER012, INTEGER013
  585.     INTEGER014 = Len(TSTRING028(1)) + Len(TSTRING028(2)) + 1
  586.     :LABEL032
  587.     STRING027 = TSTRING028(1) + TSTRING028(2)
  588.     Goto LABEL016
  589.     :LABEL033
  590.     FUNCTION001 = STRING029
  591.     Goto LABEL035
  592.     :LABEL034
  593.     If (Len(STRING027) < INTEGER010) Goto LABEL016
  594.     FUNCTION001 = STRING027
  595.     :LABEL035
  596.  
  597.     EndFunc
  598.  
  599.  
  600. ;------------------------------------------------------------------------------
  601.  
  602.     Procedure PROC001(Integer INTEGER016, Integer INTEGER017, String STRING031, Integer INTEGER018, String STRING032, String STRING033, String STRING034, String STRING035)
  603.  
  604.     Integer  INTEGER019
  605.     String   STRING036
  606.  
  607.     :LABEL036
  608.     STRING036 = STRING036 + STRING031
  609.     Inc INTEGER019
  610.     If (INTEGER019 > INTEGER018) Goto LABEL037
  611.     Goto LABEL036
  612.     :LABEL037
  613.     AnsiPos INTEGER016, INTEGER017
  614.     Color STRING033
  615.     Print STRING036
  616.     Color 8
  617.     AnsiPos INTEGER016 - 1, INTEGER017
  618.     Print STRING034
  619.     Color 7
  620.     AnsiPos INTEGER016 + INTEGER018, INTEGER017
  621.     Print STRING035
  622.  
  623.     EndProc
  624.  
  625.  
  626. ;------------------------------------------------------------------------------
  627.  
  628.     Procedure PROC002(Integer INTEGER020, String STRING037, Integer INTEGER021, Integer INTEGER022, String STRING038)
  629.  
  630.     String   STRING039
  631.  
  632.     STRING039 = Left(STRING039, INTEGER020)
  633.     AnsiPos INTEGER021, INTEGER022
  634.     Print STRING039
  635.     INTEGER021 = INTEGER021 + INTEGER020 / 2
  636.     INTEGER021 = INTEGER021 - Len(STRING037) / 2
  637.     AnsiPos INTEGER021, INTEGER022
  638.     Color STRING038
  639.     Print STRING037
  640.  
  641.     EndProc
  642.  
  643.  
  644. ;------------------------------------------------------------------------------
  645.  
  646.     Procedure PROC003(String STRING040, Integer INTEGER023, Integer INTEGER024, String STRING041, String STRING042, String STRING043, String STRING044, Integer INTEGER025)
  647.  
  648.     String   STRING045
  649.     String   STRING046
  650.     String   STRING047
  651.     String   STRING048
  652.     String   STRING049
  653.     String   STRING050
  654.     String   STRING051
  655.     String   STRING052
  656.  
  657.     STRING040 = "      " + STRING040
  658.     STRING052 = STRING040
  659.     STRING045 = Left(STRING040, INTEGER025)
  660.     STRING040 = Right(STRING040, Len(STRING052) - INTEGER025)
  661.     STRING046 = Left(STRING040, 1)
  662.     STRING040 = Right(STRING040, Len(STRING040) - 1)
  663.     STRING047 = Left(STRING040, 1)
  664.     STRING040 = Right(STRING040, Len(STRING040) - 1)
  665.     STRING048 = Left(STRING040, 1)
  666.     STRING040 = Right(STRING040, Len(STRING040) - 1)
  667.     STRING049 = Left(STRING040, 1)
  668.     STRING040 = Right(STRING040, Len(STRING040) - 1)
  669.     STRING050 = Left(STRING040, 1)
  670.     STRING040 = Right(STRING040, Len(STRING040) - 1)
  671.     STRING051 = STRING040
  672.     STRING040 = STRING041 + STRING045 + STRING042 + STRING046 + STRING043 + STRING047 + STRING044 + STRING048 + STRING043 + STRING049 + STRING042 + STRING050 + STRING041 + STRING051
  673.     AnsiPos INTEGER023 - 6, INTEGER024
  674.     Print STRING040
  675.     AnsiPos INTEGER023, INTEGER024
  676.  
  677.     EndProc
  678.  
  679.  
  680. ;------------------------------------------------------------------------------
  681. ;
  682. ; Usage report (before postprocessing)
  683. ;
  684. ; ■ Statements used :
  685. ;
  686. ;    2       End
  687. ;    1       Cls
  688. ;    32      Color 
  689. ;    127     Goto 
  690. ;    164     Let 
  691. ;    70      Print 
  692. ;    102     If 
  693. ;    1       DispFile 
  694. ;    1       GetUser
  695. ;    1       PutUser
  696. ;    4       Gosub 
  697. ;    7       Return
  698. ;    6       Delay 
  699. ;    6       Inc 
  700. ;    6       Dec 
  701. ;    72      AnsiPos 
  702. ;    3       EndProc
  703. ;    1       EndFunc
  704. ;
  705. ;
  706. ; ■ Functions used :
  707. ;
  708. ;    2       /
  709. ;    59      +
  710. ;    28      -
  711. ;    84      ==
  712. ;    7       <
  713. ;    11      >
  714. ;    34      !
  715. ;    45      Len(
  716. ;    3       Upper()
  717. ;    32      Left()
  718. ;    18      Right()
  719. ;    11      Chr()
  720. ;    1       InStr()
  721. ;    1       Replace()
  722. ;    6       Inkey()
  723. ;    1       Mask_Pwd()
  724. ;    1       PPEPath()
  725. ;
  726. ;------------------------------------------------------------------------------
  727. ;
  728. ; Analysis flags : WH
  729. ;
  730. ; W - Write user ■ 5
  731. ;     Program writes a user record. Although this may be normal for a
  732. ;     User Editor, it may also be a way to modify an account level.
  733. ;     ■ Search for : PUTUSER
  734. ;
  735. ; H - Read Password or Password History ■ 5
  736. ;     Program is reading the user's password or last password history
  737. ;     This may be ok for a password manager, but it is very suspect. Check!
  738. ;     ■ Search for : U_PWDHIST, U_PWD
  739. ;
  740. ;------------------------------------------------------------------------------
  741. ;
  742. ; Postprocessing report
  743. ;
  744. ;    0       For/Next
  745. ;    1       While/EndWhile
  746. ;    11      If/Then or If/Then/Else
  747. ;    5       Select Case
  748. ;
  749. ;------------------------------------------------------------------------------
  750. ;                 AEGiS Corp - Break the routines, code against the machines!
  751. ;------------------------------------------------------------------------------
  752.